CUREDIT, CURSET Version 3.5, (C) Copyright 1993 Mike Heilemann Programmed by Mike Heilemann 1.1 DEFINITION: CURSOR SET (CURSET.EXE) is a TSR program which takes less than 10K of memory. The function of this program is to transform the dull blinking DOS cursor to a lively animated one. CURSET is especially usefull on Laptop or computer systems with LCDs or similar displays. As many people have found, it is very easy to lose the normal underscore cursor. CURSET banishes this problem forever! Curset performs it's magic by dynamically re-mapping one of the standard ASCII characters with your predefined animation frames. By cycling through the frames many times per second it achieves the illusion of smooth animation. (Just like a cartoon!) There are a few limitations that you need to be aware of when you use curset. Fortunately, most computer systems out there today fall outside the bounds of these limits. Requires a 286 or better system with an EGA or VGA video adapter to run CURSET. A single ASCII text character is really just a 16 x 8 block of pixels. (8x8 pixels in 43/50 line mode) Each row of 8 pixels is refered as a SCAN LINE. EGA and VGA cards will allow a clever programmer to re-define some or all of these characters, and replace them with another pattern. CURSET redefines one of the 255 different ASCII characters every second. This character is then used for your cursor! 1.2 COMPATIBILITY: Hardware/Software Requirements: - A 286 or better CPU (recommended) - EGA or VGA video card and monitor - MS-DOS 3.1 or higher. Software Compatability: 4DOS, NDOS, DRDOS 6.0, DESQVIEW, Stacker 2.0+, QEMM 6.0+, OS/2 2.0 VDM and should be compatible with most other software. CURSET may be loaded high memory with QEMM, 386-MAX, DOS 5.0 & 6.0 EMM386, and OS/2 VDM. Other memory managers have not been tested, but I see no reason why they would not also work. Windows sometimes has problems remapping characters. CURSET detects and disables itself when Windows 3.0/3.1 is loaded. The problem is that when a "windowed" DOS session is switched to full screen mode, the display could be garbled. OS/2 has no such problem, and CURSET works when switching from Windowed to Full Screen. Please note that if you do switch from a Full Screen to Windowed DOS session, the cursor will be disabled until you switch back. If you find that a particular application has problems with CURSET, you can easily create a batch file to disable CURSET and run the app. The batch file can then re-enable CURSET after the program has terminated. Example: @ECHO OFF CURSET /OFF PROGNAME.EXE REM This is your bad application... CURSET /ON Some programs such as Norton Utilites, PC Tools, and others use the same character remapping technique as CURSET to make their programs have more of a graphical look and feel. If such programs remap the same ASCII character as CURSET (which defaults to 255), you may wish to change the character that CURSET uses. Character number 05 should be a good alternative. To load CURSET with an alternate remap character, use the following command line: CURSET /005 Any character from 000 to 255 can be used after the '/'. Please note that you can only change the character during initial startup of CURSET. You can NOT change the remap character while curset is loaded. To get around this, do the following: CURSET /U <-- Uninstall CURSET MODE CO80 <-- Reset video card, and EGA/VGA character set CURSET /### <-- Load CURSET with the new remap character 1.3 COMMAND LINE USAGE: CURSET Current function of switches: /### - Set remap character (0-255) Default is 255 /C:## - Set foreground cursor color from 1 - 15 /NOINV - Disable inversion of cursor upon detection of a solid block cursor /ON - Enable cursor /OFF - Disable cursor /U - Removes program from memory if possible FILENAME - Read in cursor file filename You can choose a different remap character with the /### command where ### is the decimal value (from 0 - 255) of the ASCII character you wish to remap. Setting the color of the cursor will set the foreground color only. CURSET leaves the background color totally alone. If no color is specified, it will keep the forground color of whatever character it is on. If a foreground color is specified, and it happens to be the same as the background color, CURSET will use the old foreground color. The /NOINV will make it so CURSET's cursor will NOT invert. In this mode it will always animate unless it is turned off or hidden by some program. CURSET normally inverts the cursor when it is turned into a solid block. Actually it inverts it when the cursor is set over 6 scan lines. If CURSET is unable to uninstall itself, that indicates that some other TSR has been loaded after it. If this is the case, CURSET will remain in operation IE. the cursor will remain animated. In order to uninstall it you will first have to unload all the other TSR programs that have been loaded after CURSET. Though you may use the /OFF switch to disable CURSET. CURSET changes the keyboard repeat rate, so that the timer can keep up with the output to the screen. The rate CURSET changes it to is faster than the normal repeat rate (17.1 characters per second) as opposed to the normal 10.0 characters per second). If this rate is changed by another program, in some instances the remap character can be left on the screen during scrolling. 1.4 DESIGNING YOUR OWN CURSORS FILENAME is the name of the cursor file you wish to use for CURSET's animated cursor. The format for such a file is: 1 BYTE - number of frames from 1 to 10. 16 * number of frames BYTES - value of 16 scan line cursor. 8 * number of frames BYTES - value of 8 scan line cursor. Each scan line is made up of a byte, with each bit determining if the corresponding pixel is on or off. For example, here is one frame of an 8 scan line cursor: *______* 81 Hex 129 Dec *__**__* 99 Hex 153 Dec **_**_** DA Hex 218 Dec _**__**_ 66 Hex 102 Dec _**__**_ 66 Hex 102 Dec **_**_** DA Hex 218 Dec *__**__* 99 Hex 153 Dec *______* 81 Hex 129 Dec The file must contain the numeric values, not an ASCII value. Remember that you also need to create a 16 and an 8 scan line cursor for the cursor to show up properly in all text modes. This conversion process is pretty long and tedious for making cursors, so when you REGISTER your copy, you will receive CUREDIT, which allows you to make your own cursors with minimal effort, using the keyboard or mouse. It also allows you to edit cursors, and see the animation sequence. 1.5 HOW IT WORKS: CURSET works by remapping a video character constantly cycling through the animation sequence. The remappable character can be defined by the user with the /### switch upon initial startup (see the above command line switches). This may cause a slight problem with some applications that display special characters. If they display the character you are remapping on the screen, it will be animated instead of the character they ment to display. The default remap character is 255 which is a blank unused character, so the only problems you should see are in programs which use and remap this character, in HEX dumps, or executables and the like. CURSET also gets requests to change the cursor and handles them in its own way. No matter what request to change the cursor comes in, we disable the cursor, but we do handle 3 different cases: turning the cursor off, turning the cursor on, and making the cursor a full or almost full block. The only difference you are likely to see is when the cursor is a block, in this case, we invert our animating cursor. This is usefull when in applications that use a block cursor to indicate a special cursor mode, such as insert. CURSOR EDIT (CUREDIT.EXE) NOTES: CUREDIT will be sent to you when you register your copy of CURSET. It allows you to make custom cursors of your own design quickly and easlily. Mouse and Keyboard are both supported. Frame copying, frame shifting, in editor animation, 16 and 8 scan line cursor editing on the same screen are all part of CUREDIT!. It will also detect if curset is loaded, and disable the curset cursor, which makes it easier to see what you are editing. You can edit a cursor and save it out with a new name, allowing for veriations on cursors. Scrolling cursors are now a snap with the new commands to move frames up, down, left and right. More documentation will be provided on the disk after registration of CURSET. Please fill out and send in the registration form if you are interested. nimate goes through 6 repititions of the animation sequence. It also cycles the top remap characters. opy makes a copy of the frame and places it in the next frame. Upon copying a frame, will move you to that frame if you are currently on the last frame. p rolls the current frame up one scan line, moving the image up. own rolls the current frame down one scan line, moving the image down. eft rolls the current frame to the right. ight rolls the current frame to the right. Clears current frame. The HOME key puts you at the top left of whatever cursor you are working on The END key places you at the lower right. All cursor keys, will wrap to the opposite side of the screen. Page up and down will also wrap from first to last, or last to first. moves you from the 16 line to the 8 line cursor and vice versa. Displays help screen